KnigaRead.com/
KnigaRead.com » Научные и научно-популярные книги » Радиотехника » Пауль Хоровиц - Искусство схемотехники. Том 3 [Изд.4-е]

Пауль Хоровиц - Искусство схемотехники. Том 3 [Изд.4-е]

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн "Пауль Хоровиц - Искусство схемотехники. Том 3 [Изд.4-е]". Жанр: Радиотехника издательство -, год -.
Перейти на страницу:

Программно-управляемая передача данных. Программно-управляемая передача данных показана на рис. 11.4; мы также изобразили сигналы (CLK и AS'), которые в процессе проектирования схемы обычно можно игнорировать.



Рис. 11.4. Циклы чтения/записи МП 68008 (8 МГц, без состояний ожидания).


В МП 68008 используется один сигнал, стробирующий данные (DS'), а также линия направления чтения-записи (R/W) в отличие от IBM PC, где предусмотрены два стробирующих сигнала (IOR', IOW'). В цикле записи ЦП переводит сигнал R/W в низкое состояние, устанавливает адрес и данные и, выждав некоторое время, переводит в низкое состояние сигнал DS'. Приемник (память или устройство ввода-вывода) фиксирует данные, которые (в отличие от IBM PC) гарантированно установлены еще перед фронтом сигнала DS', и подтверждает прием, устанавливая в низкое состояние сигнал DTACK'. ЦП завершает цикл, снимая сигнал DS' и затем (выждав некоторое время на случай использования приемником Прозрачных фиксаторов) снимает адрес и данные. Таким образом, достоверность данных гарантируется в течение DS' плюс короткие интервалы до и после сигнала. Цикл чтения отличается лишь тем, что ЦП поддерживает линию R/W' в высоком состоянии (указывая тем самым, что выполняется чтение) и, к тому же, устанавливает сигнал DS' на один такт раньше, чтобы дать возможность источнику данных отозваться на требование данных. Данные должны быть установлены до окончания сигнала DS'; детали взаимодействия показаны на рис. 11.4.

Действие сигнала DTACK' требует дальнейшего обсуждения. Шина МП 68008 является асинхронной (см. разд. 10.14): установив сигнал DS', ЦП, перед тем, как завершить цикл, ожидает от адресуемого устройства сигнала подтверждения DTACK' (через проводное ИЛИ). Если сигнал DTACK' поступает перед концом такта S4, состояния ожидания не включаются в протокол, и последовательность сигналов выглядит точно так, как показано на рис. 11.4; если же DTACK' задерживается, ЦП удерживает все свои выходные сигналы в стабильном состоянии (включая в протокол магистрали после такта S4 «состояния ожидания») до появления сигнала DTACK', после чего завершает цикл тактами S5-S7. Состояния ожидания требуются только при работе с очень медленными устройствами, поэтому адресуемое устройство должно устанавливать сигнал DTACK' сразу же после распознания им на шине своего адреса (устройство может установить DTACK' по результатам декодирования адреса или образовав логическое И из сигнала декодирования и полученного им из ЦП сигнала AS', который указывает на достоверность адреса). Вообще говоря, если все устройства, подключенные к шине, являются быстрыми, вы можете, с известной долей риска, постоянно удерживать линию DTACK' в низком состоянии и полностью избавиться от состояний ожидания; эта методика отразилась в названии журнала, посвященного высокопроизводительным приложениям семейства МП 68000: «DTACK' заземлен».

Все это выглядит несколько запутанно, но в действительности сопряжение с МП 68008 выполняется очень просто. На рис. 11.5 изображен простейший порт ввода-вывода.




Рис. 11.5. Параллельный порт ввода-вывода, а — базовая схема; б — схема с реально существующими вентилями; в — реализация на основе ПЛМ.


Адресные сигналы декодируются и после поступления сигналов DS' и R/W' образуют сигналы, используемые для стробирования D-триггеров выходного регистра (для записи) и разрешения тристабильных выводов входного регистра (для чтения). Сигнал DTACK' устанавливается сразу после расшифровки адреса (если адресуется данный порт), поскольку для столь быстрых устройств, какими являются 8-разрядные регистры, состояния ожидания не требуются; мы использовали обычный прием преобразования драйвера с тремя состояниями в драйвер с открытым коллектором. Заметьте, что для стробирования D-триггеров мы использовали срез сигнала DS'; это сделано из-за того, что фронт сигнала DS' может отстоять от момента установки достоверных данных всего лишь на 35 нс (см. рис. 11.4), что опасно близко к времени упреждения многих 8-разрядных регистров (например, семейства LS и НСТ имеют минимальное время упреждения 20 нc). Так, если на шине данных используются шинные буферы (например, 8-разрядные двунаправленные буферы `245), то дополнительная задержка данных относительно сигнала DS' может привести к тому, что триггеры схемы `574 не успеют установиться. Используя срез сигнала, мы выигрываем дополнительные 140 мкc для увеличения времени упреждения. (При желании можно было использовать прозрачные фиксаторы, например `573, которые фиксируют данные по срезу сигналы фиксации; для таких фиксаторов характерное минимальное значение времени упреждения, как и времени удержания, составляет около 15 нc.)

Варианты схем, приведенные на рис. 11.5, учитывают практические детали. Оказывается, в большинстве логических семейств отсутствуют 3-входовые вентили ИЛИ! Одним из возможных решений является использование 2-входовых вентилей, как показано на рис. 11.5. Более современный способ - поместить всю вентильную логику в комбинационную ПЛМ; помимо уменьшения числа микросхем, это дает вам возможность, используя высокую плотность вентилей в ПЛМ, генерировать с помощью одной микросхемы стробирующие и разрешающие сигналы для дополнительных периферийных портов.

Одна незначительная деталь приведенного примера предвосхитила материал следующего раздела. В процессе обработки прерывания (см. ниже) МП 68008 выполняет цикл подтверждения прерывания, выглядящий, как цикл чтения самого верха памяти (линии А4-А19 установлены в 1). Если в этой области адресного пространства вы располагаете память или какие-то регистры, их надо заблокировать на время цикла прерывания, идентифицируемого по состоянию битов FC0-2 «функционального кода». Все это поясняется в следующем разделе.

Прерывания. В МП 68008 реализуются и автовекторизуемые, и полностью векторизуемые (с подтверждением) прерывания (если вы забыли, что это такое, см. разд. 10.11), для чего используется вторая группа сигналов шины из табл. 11.4. В обоих случаях вы запрашиваете прерывание, устанавливая на двух линиях приоритетного запроса (IPL') некоторую комбинацию низких уровней. Две линии определяют три уровня прерываний (четвертое состояние - на обеих линиях высокий потенциал - соответствует отсутствию прерывания). Эти линии схожи с линиями IRQ магистрали IBM PC, но поскольку они чувствительны к уровню, к каждому уровню прерываний можно подключить несколько прерывающих устройств, (Полезно заметить, что МП 68000, а также некоторые варианты МП 68008 имеют 3 линии IPL', что позволяет определить 7 уровней прерываний.)

ЦП, обнаружив запрос прерывания (по крайней мере одна линия в низком состоянии), выполняет цикл подтверждения (рис. 11.6), в течение которого идентифицируется источник прерываний.



Рис. 11.6. Цикл подтверждения прерывания.


ЦП устанавливает на линиях А1-А3 значение уровня прерывания, а на линиях А4-А19 высокий уровень; все линии функционального кода FC0-2 устанавливаются в высокое состояние. Затем ЦП выполняет цикл чтения (устанавливая сигнал R/W' в высокое состояние). Теперь ваши внешние цепи определяют вид цикла подтверждения: автовекторизуемое (переход в соответствии с уровнем IPL') или с подтверждением (переход в соответствии с вектором, установленным прерывающим устройством на линиях D0-D7). Более просто реализуется автовекторизуемое прерывание (рис. 11.7).



Рис. 11.7. Автовекторизуемое прерывание.


Внешняя цепь обнаруживает цикл подтверждения по сигналам FC0-2 и одновременно с AS' устанавливает входной сигнал VPA'. После этого ЦП осуществляет переход на программу обслуживания, соответствующую уровню IPL прерывания. Для перехода используются векторы (т. е. 32-разрядные адреса программ обслуживания), расположенные по абсолютным адресам $68, $74 или $7C. Если число прерывающих устройств не превышает трех, автовекторизация весьма удобна. Собственно говоря, устройств может быть и больше, но вам придется опрашивать регистры состояния всех «подозрительных» устройств (т. е. устройств, подключенных к обслуживаемому уровню прерываний), чтобы найти виновника. И лишь в случае, когда у вам много потенциальных источников прерываний (маловероятная ситуация в небольшом устройстве на базе МП 68008), и к тому же требуется обеспечить минимальные временные задержки, целесообразно обратиться к схеме прерываний с подтверждением.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*